The iiiillllPPPPrrrrooooppppSSSSeeeetttt class is an abstract class for managing collections of
properties (name/value pairs). Essentially, an iiiillllPPPPrrrrooooppppSSSSeeeetttt object is an
associative memory that allows one to store and retrieve values indexed
by a name. An iiiillllPPPPrrrrooooppppSSSSeeeetttt object contains a set of iiiillllPPPPrrrrooooppppeeeerrrrttttyyyy objects as
elements. Each element is identified by the address of the iiiiffffllllNNNNaaaammmmeeee
object associated with the property. Methods are provided to access the
value of a property given a pointer to an iiiiffffllllNNNNaaaammmmeeee object as a key, store
a value under an iiiiffffllllNNNNaaaammmmeeee pointer key, and remove a property. Two
subclasses of iiiillllPPPPrrrrooooppppSSSSeeeetttt are also provided, iiiillllPPPPrrrrooooppppLLLLiiiisssstttt and iiiillllPPPPrrrrooooppppTTTTaaaabbbblllleeee,
which implement the abstract class as a linked list (inherits iiiiffffllllLLLLiiiisssstttt)
and as a hash table (inherits iiiiffffllllHHHHaaaasssshhhhTTTTaaaabbbblllleeee), respectively. In general,
one should use iiiillllPPPPrrrrooooppppLLLLiiiisssstttt if the number of properties is small or memory
efficiency is important. The iiiillllPPPPrrrrooooppppTTTTaaaabbbblllleeee class should be used when
efficient access is desired even when there are a large number of
properties in the set. To iterate over the contents of a property
collection, use the appropriate inherited methods from iiiiffffllllLLLLiiiisssstttt or